{
 "cells": [
  {
   "cell_type": "markdown",
   "source": [
    "### Contributing to torchdyn and DiffEqML\n",
    " `torchdyn` is designed to be a community effort: we welcome all contributions of tutorials, model variants, numerical methods and applications related to continuous and implicit deep learning. We do not have specific style requirements, though we subscribe to many of Jeremy Howard's [ideas](https://docs.fast.ai/dev/style.html).\n",
    "\n",
    "We use `poetry` to manage requirements, virtual python environment creation, and packaging. To install `poetry`, refer to [the docs](https://python-poetry.org/docs/).\n",
    "To set up your dev environment, run `poetry install`. In example, `poetry run pytest` will then run all `torchdyn` tests inside your newly created env.\n",
    "\n",
    "`poetry` does not currently offer a way to select `torch` wheels based on desired `cuda` and `OS`, and will install a version without GPU support. For CUDA `torch` wheels,\n",
    "run `poetry run poe force_cuda11`, or add your version to `pyproject.toml`.\n",
    "\n",
    "If you wish to run `jupyter` notebooks within your newly created poetry environments, use `poetry run ipython kernel install --user --name=torchdyn` and switch the notebook kernel.\n",
    "\n",
    "\n",
    "**Choosing what to work on:** There is always [ongoing work](https://github.com/DiffEqML/torchdyn/issues) on new features, tests and tutorials. Contributing to any of the above is extremely valuable to us. If you wish to work on additional features not currently WIP, feel free to reach out on Slack or via email. We'll be available to discuss details.\n",
    "\n",
    "#### On the scope of `torchdyn` and missing features\n",
    "\n",
    "The scope of the library is currently quite large as it spans deep learning, numerical methods and differential equations. While we have attempted to design a general API for state-of-the-art approaches in the field, not everything has made its way into the library so far, and it is thus possible that certain methods or classes might have to be tuned for specific applications.\n",
    "\n",
    "We have used `torchdyn` extensively for our own research and publications, including:\n",
    "* Dissecting Neural ODEs [NeurIPS20, oral]\n",
    "* Hypersolvers [NeurIPS20]\n",
    "* Graph Neural ODEs [AAAI workshop]\n",
    "* Differentiable Multiple Shooting Methods\n",
    "* Neural Hybrid Automata\n",
    "* Optimal Energy Shaping\n",
    "* Learning Stochastic Optimal Policies via Gradient Descent [L-CSS]"
   ],
   "metadata": {}
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "torchdyn",
   "language": "python",
   "name": "torchdyn"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}